package com.hn.it.qwen01.service;


import com.baidubce.qianfan.Qianfan;
import com.baidubce.qianfan.core.auth.Auth;
import com.baidubce.qianfan.model.chat.ChatResponse;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

@Service
public class QianfanService {

    //点击百度智能云，在登录之后点击用户头像，有个安全认证，点击之后就是创建的应用对应的密钥
    //小心泄露，泄露之后要重新删除对应应用，要新创建
    private List<String> messageHistory = new ArrayList<>();
    private final Qianfan qianfan;

    private final String ACCESS_KEY = "ALTAKMQb2dHELUqYwxPHrZMwui";
    private final String SECRET_KEY = "d96ef21b31064014b47e982c74c62ac5";

    public QianfanService() {
        this.qianfan = new Qianfan(ACCESS_KEY, SECRET_KEY);
    }
//    public ChatResponse chatWithQianfan(String message) {
//        this.qianfan = new Qianfan(ACCESS_KEY, SECRET_KEY);
//
//
//        return qianfan.chatCompletion()
//                .model("Qianfan-Chinese-Llama-2-13B")
//                //这里有个弊端，会让用户，尤其是业内人士，看出模型的使用，从而奔走相告
//                .addMessage("user", message)
//                .temperature(0.7)
//                .execute();
//
//    }

    public String callWithMessage(String userPrompt, int maxTokens, String role) {
        // 根据角色获取对应的情景
        String prompt = getPromptByRole(role);

        // 构建最终提示语句，只包含当前用户输入和对应角色的情景
        String finalPrompt = "用户说：" + userPrompt + "\n" + prompt;

        ChatResponse response = qianfan.chatCompletion()
                .model("Qianfan-Chinese-Llama-2-13B")
                .addMessage("user", finalPrompt)
                .temperature(0.7)
                .execute();

        // 添加 AI 生成的回答到历史记录
        messageHistory.add("AI回答：" + response.getResult());

        return response.getResult(); // 返回生成的文本内容
    }
    public String getPromptByRole(String role) {
        switch (role) {
            case "father":
                return "角色：你是我的父亲；任务：父亲在家庭中扮演着多重角色。首先，他是孩子们的榜样和导师，通过他的行为和决策教导孩子关于生活、道德和价值观。他鼓励孩子们探索世界，培养他们的独立性和解决问题的能力。其次，父亲是家庭的守护者，他为家庭提供物质保障，保护家人的安全和幸福。再者，他是情感的支持者，给予孩子安慰和鼓励，帮助他们度过困难时期。此外，父亲也是家庭中的调解者，协调家庭成员之间的关系，维护家庭和谐。总的来说，父亲在家庭中起着引导、保护、支持和维系平衡的关键作用。";
            case "mather":
                return "角色：你是我的母亲；任务：母亲在家庭中扮演着温暖的庇护所和无尽的爱心源泉的角色。她是孩子们的第一任教师，传授基本的生活技能和情感智慧，用耐心和关爱滋养孩子的心灵。母亲通过无微不至的照顾，让孩子感受到安全和归属感。她不仅是孩子们的情感支柱，在他们受伤或困惑时给予慰藉，也是他们的鼓励者，激发他们的自信心和梦想。同时，母亲是家庭的组织者和协调者，平衡家庭生活的各个方面，确保每个成员的需求得到满足。她的坚韧和牺牲精神塑造了家庭的温馨氛围，使家庭成为孩子成长的坚实基础。";
            case "dog":
                return "角色：你是我的狗；任务：无论我说什么都不停地开心狗叫";
            default:
                return "角色：你是我的对象；任务：在我需要依靠时给予我安慰。例如：我说：真倒霉，忘记带伞，被淋雨了；你说：不要伤心，我们下雨天很多同事也迟到了，工资扣了很多。";
        }
    }

}

